/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Persistencia;

import Logica.Accion;
import Logica.Reunion;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.LinkedList;

/**
 *
 * @author Matias
 */
public class ADOReunion {

    private Singleton_Conexion datosconexion;
    Connection conexion;

    public ADOReunion() {
        try {
            Class.forName(datosconexion.getInstancia().getDriver());
            conexion = DriverManager.getConnection(datosconexion.getInstancia().getProtocolo());
        } catch (ClassNotFoundException ex) {
            ex.printStackTrace();
        } catch (java.sql.SQLException e1) {
            e1.printStackTrace();
        }
    }

//    public boolean insertarTipoReunion(TipoReunion a) {
//        String string = "Insert Into tipoReunion (nombre) values(?)";
//        PreparedStatement st;
//        try {
//
//            st = conexion.prepareStatement(string);
//            st.setString(1, a.getNombre());
//            //   st.setInt(2, a.getId());
//            st.execute();
//            st.close();
//            return true;
//        } catch (java.sql.SQLException e1) {
//            e1.printStackTrace();
//            return false;
//        }
//    }
    //Falta hacer que se agregen las acciones????? AGHHHHH (Facundo)
    public boolean insertarReunion(Reunion r, String nombreProyecto) {
        String string = "insert into reunion (nombre, nombre_proyecto) values(?,?)";
        try {
            PreparedStatement st = conexion.prepareStatement(string);
            st.setString(1, r.getNombre());
            st.setString(2, nombreProyecto);
            st.execute();
            st.close();
            return true;
        } catch (java.sql.SQLException e1) {
            e1.printStackTrace();
            return false;
        }
    }

//    public LinkedList obteberTiposReuniones() {
//        ResultSet rs = null;
//        LinkedList lista = new LinkedList();
//        PreparedStatement st;
//        try {
//            
//            String string = "select nombre, id_tipo from tiporeunion";
//            st = conexion.prepareStatement(string);
//            rs = st.executeQuery();
//
//            while (rs.next()) {
//                TipoReunion tr = new TipoReunion();
//                tr.setNombre(rs.getString("nombre"));
//                tr.setId(rs.getInt("id_tipo"));
//                lista.add(tr);
//            }
//        st.close();    
//        } catch (java.sql.SQLException e1) {
//            System.out.println(e1.toString());
//        }
//        return lista;
//    }
//
//    public TipoReunion obteberTiposReunionesByID(int id) {
//        ResultSet rs = null;
//        TipoReunion tr = new TipoReunion();
//        PreparedStatement st;
//        try {
//            
//            String string = "select id_tipo,nombre from tipoReunion where id_tipo = ?";
//            st = conexion.prepareStatement(string);
//            st.setInt(1,  id);
//            rs = st.executeQuery();
//            tr.setNombre(rs.getString("nombre"));
//            tr.setId(rs.getInt("id_tipo"));
//            st.close();
//        } catch (java.sql.SQLException e1) {
//            System.out.println(e1.toString());
//        }
//        return tr;
//    }
//    public TipoReunion obteberTiposReunionesByName(String nombre) {
//        ResultSet rs = null;
//        TipoReunion tr = new TipoReunion();
//        PreparedStatement st;
//        try {
//            
//            String string = "select id_tipo, nombre from tipoReunion where nombre = "+"'"+nombre+"'";
//            st = conexion.prepareStatement(string);
//          /*  String aux = "'" + nombre + "'";
//            st.setString(1, aux);
//          */
//            rs = st.executeQuery();
//            tr.setId(rs.getInt("id_tipo"));
//            tr.setNombre(rs.getString("nombre"));
//           
//           st.close();
//        } catch (java.sql.SQLException e1) {
//            System.out.println(e1.toString());
//        }
//        return tr;
//    }
  
    public LinkedList obtenerReuniones(String proyecto) {
        ArrayList<Accion> acciones = new ArrayList();
        ResultSet rs = null;
        LinkedList lista = new LinkedList();
        PreparedStatement st;
        String string = "";
        try {
            string += "select r.nombre a.* from reunion r";
            st = conexion.prepareStatement(string);
            rs = st.executeQuery();

            while (rs.next()) {
                Reunion r = new Reunion();
                r.setNombre(rs.getString("nombre"));
                lista.add(r);
            }
            st.close();
        } catch (java.sql.SQLException e1) {
            System.out.println(e1.toString());
            e1.printStackTrace();
        }
        return lista;
    }


    public Reunion obteberReunionByName(String nombre, String nombreProyecto) {
        ResultSet rs = null;
        Reunion reu = new Reunion();
        PreparedStatement st;
        try {

            String string = "select * from reunion where nombre = '" + nombre + "', nombre_proyecto = '" + nombreProyecto + "'";
            st = conexion.prepareStatement(string);
            rs = st.executeQuery();
            reu.setNombre(rs.getString("nombre"));
            st.close();
        } catch (java.sql.SQLException e1) {
            System.out.println(e1.toString());
            e1.printStackTrace();
        }
        return reu;
    }

    public LinkedList obtenerReunionesPorProyecto(String nombreProyecto) {
        LinkedList reuniones = new LinkedList();
        ResultSet rs = null;
        PreparedStatement st;
        try {
            String string = "select * from reunion where nombre_proyecto = '" + nombreProyecto + "'";
            st = conexion.prepareStatement(string);
            rs = st.executeQuery();
            while (rs.next()) {
                Reunion r = new Reunion();
                r.setNombre(rs.getString("nombre"));
                reuniones.add(r);
            }
            st.close();
        } catch (java.sql.SQLException e1) {
            System.out.println(e1.toString());
            e1.printStackTrace();
        }
        return reuniones;
    }
}
